Conventional storage controllers having a plurality of built-in or mountable storage media such as flash memory have become widespread in use. A personal computer or other host device can access the storage media to read and write data. The storage controller includes a plurality of slots in which various types of storage media can be mounted. Examples of this storage media include CompactFlash®, SmartMedia® Memory Stick®, and Secure Digital (SD) Cards®, which are card-type storage media provided with flash memory. Conventional multi-slot storage controllers allow the mounted storage media to be read from or written to.
While the volume of data transmissions has increased dramatically due to the popularity of multimedia, data transmission between these storage controllers and personal computers has generally been implemented through serial communication. However, in order to facilitate the handling of a plurality of storage media, there now exist many devices that assume the role of an arbitration/access control system fox controlling data accesses with peripherals using parallel communication.
The system may employ an access control device such as the following. The access control device controls data accesses to storage devices in a control step unit in which the following steps are sequentially executed: a primary control command analyzing step for receiving from a personal computer and analyzing a primary control command identifying the content of the data access; a data access step for accessing a storage device according to the analyzed content of the primary control command; and a status transmitting step for transmitting a status indicating the results of the data access to the host device.
Specifically, when the personal computer issues a command specifying the type of access (such as read, write, erase, and confirm the presence of media), the access control device executes a series of operations (control step unit) as a set. This series of operations includes analyzing the content of the command, executing the corresponding access control, and returning to the personal computer a status indicating the results of the access after completing the access control. When the control device is executing a control step unit for a current data access, a control step unit for a succeeding data access is queued until execution of the current control step unit is completed. This is a common method corresponding to the SCSI (Small Computer System Interface) standard.
The USB (Universal Serial Bus) standard has been in widespread use in recent years as a serial communication method for connecting with peripheral devices. Data transfers according to the USB standard are performed by specifying a communication destination (target) among a plurality of peripherals connected to the personal computer through polling. A storage controller configured of a USB device can implement data accesses such as reading and erasing data through serial communication. If the storage controller configured as a USB peripheral incorporates an access control device using the SCSI system described above, the personal computer uses polling to target this access control device and perform serial communications therewith (hereinafter, this type of storage controller will be referred to as a USB/SCSI storage controller).
Multi-slot type storage controllers configured as the USB/SCSI storage controller described above have conventionally employed a hardware structure having a plurality of slots for mounting storage media separately, which slots are collectively connected to a single access control device, as disclosed in Japanese Patent Application Publication No. 2005-107875.
However, the conventional configuration includes a single access control device that can be polled as a target for serial communication. Hence, as described above, while a control step unit is being executed for a current data access, a control step unit for a succeeding data access is queued until the current control step unit has been completed. Therefore, when there are competing data accesses from the PC to the plurality of slots connected to the single access control device, the control step unit for each data access must be processed sequentially, even when the these data accesses target different slots. In other words, when a control step unit is being performed for a certain slot, a control step unit for another slot cannot be executed until the control step unit for the current slot has been completed even during idle time in which no actual read/write accesses are being performed, such as when analyzing the command. This idle time becomes dead time, resulting in extremely poor control efficiency. This problem is particularly striking when the storage media is flash memory or the like having a slow read/write speed.